import request from '@/utils/request'

/**
 * 获取农场的所有商品
 * @param {number} farmId - 农场ID
 * @returns {Promise} 返回商品列表
 */
export function getFarmProducts(farmId) {
  return request({
    url: `/api/products/farm/${farmId}`,
    method: 'get'
  })
}

/**
 * 获取用户的所有商品
 * @returns {Promise} 返回商品列表
 */
export function getUserProducts() {
  const userId = sessionStorage.getItem('userId')
  return request({
    url: '/api/products/user',
    method: 'get',
    params: { userId }
  })
}

/**
 * 创建商品
 * @param {number} farmId - 农场ID
 * @param {object} data - 商品数据
 * @returns {Promise} 返回创建结果
 */
export function createProduct(farmId, data) {
  const formData = new FormData()
  formData.append('productName', data.productName)
  formData.append('productDescription', data.productDescription)
  formData.append('price', data.price)
  formData.append('stock', data.stock)
  
  // 添加分类ID
  formData.append('categoryIds', data.categoryIds)
  
  // 添加图片
  if (data.images && data.images.length > 0) {
    data.images.forEach(image => {
      formData.append('images', image)
    })
  }
  
  return request({
    url: `/api/products/farm/${farmId}`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 删除商品
 * @param {number} productId - 商品ID
 * @returns {Promise} 返回删除结果
 */
export function deleteProduct(productId) {
  return request({
    url: `/api/products/${productId}`,
    method: 'delete'
  })
}

/**
 * 获取商品详情
 * @param {number} productId - 商品ID
 * @returns {Promise} 返回商品详情
 */
export function getProductDetail(productId) {
  return request({
    url: `/api/products/detail/${productId}`,
    method: 'get'
  })
}

/**
 * 更新商品库存
 * @param {number} productId - 商品ID
 * @param {number} stock - 新的库存
 * @returns {Promise} 返回更新结果
 */
export function updateProductStock(productId, stock) {
  return request({
    url: `/api/products/stock/${productId}`,
    method: 'put',
    params: { stock }
  })
}

/**
 * 更新商品状态
 * @param {number} productId - 商品ID
 * @param {number} status - 状态：1-上架中，0-已下架
 * @returns {Promise} 返回更新结果
 */
export function updateProductStatus(productId, status) {
  return request({
    url: `/api/products/status/${productId}`,
    method: 'put',
    params: { status }
  })
}

// 收藏商品
export function addToFavorites(productId) {
  return request({
    url: '/api/products/favorites/add',
    method: 'post',
    data: {
      productId
    }
  })
}

// 取消收藏商品
export function removeFromFavorites(productId) {
  return request({
    url: '/api/products/favorites/remove',
    method: 'post',
    data: {
      productId
    }
  })
}

// 检查商品是否已收藏
export function checkIsFavorite(productId) {
  return request({
    url: `/api/products/favorites/check/${productId}`,
    method: 'get'
  })
}

// 获取收藏列表
export function getFavoritesList() {
  return request({
    url: '/api/products/favorites/list',
    method: 'get'
  })
}

// 获取最新上架的商品
export function getLatestProducts() {
  return request({
    url: '/api/products/latest',
    method: 'get'
  })
} 